//
// File:	IConfig.hpp
// Author:	Thomas TISSOT-DUPONT
// Login:	<thomas.tissotdupont@free.fr>
//
// Created:	17/04/2010 at 19:17:12
// Purpose:	
//
#ifndef ICONFIG_HPP
#define ICONFIG_HPP

#include <string>
#include "Variant.hpp"

class IConfig
{
public:
	virtual				~IConfig() {}

public:
	virtual bool		ParseFromFile(const std::string &filePath) = 0;
	virtual bool		WriteToFile(const std::string &filePath) = 0;

public:
	virtual void		SetCvar(const std::string &key, const Variant &value) = 0;
	virtual bool		HasCvar(const std::string &key) const = 0;
	virtual Variant		GetCvar(const std::string &key, const Variant &defaultValue = Variant()) const = 0;
};

#endif //!ICONFIG_HPP
